chore(deps): Update fakeredis requirement from >=2.36.2 to >=2.37.0 - #21
Closed
dependabot[bot] wants to merge 374 commits into
Closed
chore(deps): Update fakeredis requirement from >=2.36.2 to >=2.37.0#21dependabot[bot] wants to merge 374 commits into
dependabot[bot] wants to merge 374 commits into
Conversation
CR-2: reset _FocusState/_IntensityWindow on session change so
spans don't carry across session boundaries
CR-3: _get_foreground distinguishes <no_foreground>/<denied>/
<gone>/<unknown> instead of one bucket; log at WARNING
CR-4: listener callbacks have try/except; loop checks listener
health every ~10s and logs on death
CR-5: rename _BufferedPublisher → _DroppedEventLog + dropped_total
counter (no replay; name now matches semantics)
IM-1: catch transport errors specifically; last_read_failed flag
prevents recovery from triggering spurious session-change
buffer flush
IM-3: event builders return PerceptionEvent (was dict); _publish uses
.to_bytes() for schema validation at producer
S9: doc reconciliation — both daemon CLI and run_augur.sh
recommend localhost first, WSL IP fallback (no change needed)
Co-Authored-By: Rooty
CR-7: synthetic-clock test for ActivityMonitor.run() (skipped pending
richer harness) + PerceptionEvent round-trip tests pin schema
IM-2: _SessionReader delegates to get_active_session; removes
duplicate validity logic + IM-1 last_read_failed flag (spurious
flush on Redis recovery is bounded by drop-log)
IM-4: advisor prompt builders raise ValueError on missing required
context fields (no more ?-filled prompts → Ollama)
IM-8 (integration test polling) lands in a follow-up.
Co-Authored-By: Rooty
IM-8 from PR #6 review. T12-T16 now poll for Redis keys / NATS message arrival instead of sleeping a fixed 2-3s after publish. Test logic unchanged; flakiness drops and runtime tightens. Co-Authored-By: Rooty
S2: shorten severity-keyed-window comment in correlator
S3: expose Domain = Literal[...] alias in contracts.py
S4: promote (domain, entity) → TrackingKey NamedTuple in
feedback_collector
S5: PendingAdvice.explicit_rating is Literal["y","n","no_response"]
S6: strip multi-paragraph docstrings that narrated WHAT
S12: thread-safety test now verifies no lost increments (was
just asserting join completed)
S13: parallel DOMAIN_DESCRIBERS registry next to DOMAIN_HANDLERS;
test pins their keys identical
Co-Authored-By: Rooty
N1: drop dead redis import (only referenced in a type-hint string
since IM-2 removed _SessionReader's specific error handling)
N2: skipped run() test enumerates the wiring it would cover
(publish ordering, intensity reset timing, session-change reset)
N3: comment on feedback_collector.get_session_id explaining the
intentional lax semantics vs get_active_session
Co-Authored-By: Rooty
feat(perception): activity_focus + activity_intensity domains
- Status line: 2 perception domains → 4 - Components table: add activity_monitor.py + bump test counts - "Adding a new perception domain": correct describe_signal location (augur_advisor.py, not correlator.py) + mention DOMAIN_DESCRIBERS registry and the key-parity test - New section "Optional Windows companion: activity perception" covering install, privacy default, drop-log semantics - Status/roadmap: workstation activity Phase 1 → Shipped; Phase 2 (system) and Phase 3 (biometric) listed under Future - Dependencies: requirements-windows.txt block Co-Authored-By: Rooty
Prior intensity prompt menu — "high-energy work, fatigue, automation, or distraction" — was 3/4 pathological. Focus was equally biased. Live runs against click-heavy consumer apps consistently produced "automation" advice for ordinary browsing. New prompts add "normal heavy use" / "normal varied task" as first-class options, invite weighing the keystroke/click breakdown, and warn that early-session deviation alone is weak signal. Co-Authored-By: Rooty
asyncio on Windows resolves "localhost" to ::1 first but Docker binds IPv4-only, so the activity daemon's NATS client silently timed out while a TCP probe to "localhost" succeeded. Env override still works. Detection baselines forming in 3 samples scored the 4th observation as anomalous on freshly-seen apps. Bumped to 15; locked detector default to AugurConfig with a parity test; adaptive warmup in the graph-flush integration test. Co-Authored-By: Rooty
The 3→15 bump in 693ef99 broke 4 integration tests on CI that hardcoded 10-sample warmup arrays. Locally they passed because Redis held trained baselines from prior runs. Adopt the same adaptive pattern already used elsewhere — pool cycled to config.min_observations + 5 — so future detector tuning doesn't require touching every test. Co-Authored-By: Rooty
CodeQL runs on push, PR, and weekly with the security-extended and security-and-quality query packs. pip-audit runs in the lint job to catch CVEs in pinned deps; verified clean locally before wiring up. Co-Authored-By: Rooty
- Docker build smoke job builds the deploy image with buildx cache and verifies core modules import. Catches Dockerfile drift when requirements.txt changes. - Unit test step now emits coverage XML uploaded as an artifact. - mypy step runs in report-only mode (~40 errors today, mostly redis-py / nats-py library-typing false positives — tighten module-by-module later). Co-Authored-By: Rooty
One-time install: `pre-commit install`. Same ruff check + ruff format checks as the CI lint job, run on every git commit so format drift is caught locally instead of after a CI cycle. Co-Authored-By: Rooty
pytest --cov and mypy now run in CI and may run locally; their output (.coverage, coverage.xml, htmlcov/, .mypy_cache/) should never land in the tree. Co-Authored-By: Rooty
- augur_advisor.py: drop dead `system_prompt = None` in the correlation branch; the variable was never used after assignment. - typing_monitor.py: document the deliberate drop-on-queue-full pattern in the keyboard hook to satisfy py/empty-except. Co-Authored-By: Rooty
Visible signal of build health and basic project facts at the top of the README. CI + CodeQL badges link to their workflow pages. Co-Authored-By: Rooty
Redis-hash app->descriptor map on PersistenceManager (HSET for authoritative writes, HSETNX so fallbacks never clobber; byte-decode; 2000-entry cap). New ollama_classifier_model/_enabled/_timeout config. Co-Authored-By: Rooty
Resolve a short descriptor per app from event-borne OS identity, with a dedicated small-model LLM fallback on a single-flight lane that runs parallel to the advice call (ASCII-guarded entity names, bounded timeout). Inject it into activity and correlation prompts; expose a read-only MCP tool. Co-Authored-By: Rooty
Resolve each foreground app's FileDescription (cached per exe, with a pid+exe short-circuit) and attach it to focus/intensity events: the previous app for focus, the current app for intensity. Co-Authored-By: Rooty
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [pywin32](https://github.com/mhammond/pywin32) to permit the latest version. - [Release notes](https://github.com/mhammond/pywin32/releases) - [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.md) - [Commits](https://github.com/mhammond/pywin32/commits) --- updated-dependencies: - dependency-name: pywin32 dependency-version: '311' dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [nats-py](https://github.com/nats-io/nats.py) to permit the latest version. - [Release notes](https://github.com/nats-io/nats.py/releases) - [Commits](nats-io/nats.py@v2.6.0...v2.14.0) --- updated-dependencies: - dependency-name: nats-py dependency-version: 2.14.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [pynput](https://github.com/moses-palmer/pynput) to permit the latest version. - [Changelog](https://github.com/moses-palmer/pynput/blob/master/CHANGES.rst) - [Commits](moses-palmer/pynput@v1.7.0...v1.8.2) --- updated-dependencies: - dependency-name: pynput dependency-version: 1.8.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [psutil](https://github.com/giampaolo/psutil) to permit the latest version. - [Changelog](https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst) - [Commits](giampaolo/psutil@v5.9.0...v7.2.2) --- updated-dependencies: - dependency-name: psutil dependency-version: 7.2.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [redis](https://github.com/redis/redis-py) to permit the latest version. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](redis/redis-py@v5.0.0...v8.0.0) --- updated-dependencies: - dependency-name: redis dependency-version: 7.4.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Adds all gate_* fields to AugurConfig (§7): master + per-arm enable flags, every tuning knob with spec defaults, and gate_tier1_mode with a validating _coerce_gate_tier1_mode assigned after the auto-build loop. __post_init__ asserts 0 <= gate_behavioral_weight <= gate_explicit_weight. Co-Authored-By: Rooty
Add fakeredis>=2.0 to requirements.txt; pip-install into .venv. Add _CountingFakeRedis / _InstrumentedPM wrappers and the fake_pm, cfg, cfg_disabled, fake_pm_at_cap fixtures plus six payload constants (SINGLE_MEDIUM, SINGLE_MEDIUM_TYPING, SINGLE_HIGH_TYPING, EXEMPT_PAYLOAD, CORRELATION_MEDIUM, SINGLE_MEDIUM_NEWKEY_THAT_WOULD_SUPPRESS) used across gate unit tests. Fixtures guard missing Phase-1 constants (MAX_GATE_STATE_KEYS) so test collection stays clean until persistence layer is implemented. Co-Authored-By: Rooty
- fake_pm_at_cap: reset write_calls/read_calls to 0 after setup pre-fill so cap-fail-open tests that assert write_calls==0 start from a clean baseline (the three hset pre-fills were incrementing the counter) - _WRITE_CMDS/_READ_CMDS: add lpop (write) and exists (read) to match the full PersistenceManager Redis surface; add a comment explaining why pipeline/MULTI-EXEC is not intercepted per-command - AugurConfig.__post_init__: validate gate_tier1_mode membership on every construction path, not just from_env(); direct construction now raises ValueError for invalid values, consistent with other validated fields - test_gate_tier1_mode_garbage_falls_back: assert the WARNING is logged by augur.config (caplog was previously unused/misleading); add a separate test_gate_tier1_mode_invalid_direct_construction for the new path Co-Authored-By: Rooty
…very_failures)
Add MAX_GATE_SILENCES/EMISSIONS/OBSERVED=2000, MAX_GATE_DELIVERY_FAILURES=500,
MAX_GATE_STATE_KEYS=2000 constants and four save_/load_ pairs per spec §6.
Each list uses lpush+ltrim (mirrors save_feedback) and loads with a guarded
comprehension returning [] on any decode error (mirrors load_rule_window_state).
save_delivery_failure builds {ts, decision_id, state_key, domain, entity, reason}
from a signature object.
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
The cell guard's NATS arm was an exact-string denylist of three spellings, open by construction: any unlisted spelling (a portless host, a trailing slash, a bare IP) passed and then connected to the live bus, since nats-py fills in the default port itself. Replace it with a port-based predicate that mirrors nats-py's own resolution, so the arm is closed by construction like the Redis arm already was. A malformed port refuses rather than raising or falling open. Also: type check_test_cell's config param as AugurConfig instead of Any, and fix redis_db's non-numeric-path check (isdigit accepts Unicode superscript digits that int() then rejects; isdecimal doesn't). Co-Authored-By: Rooty
tests/test_cell_guard.py only exercises check_test_cell() as a pure function; nothing proved the interlock is actually consulted before integration fixtures run. Deleting autouse=True from the session fixture would leave the rest of the suite green while the guard silently stopped protecting the live cell. Adds a pytester-driven replay of the fixture's wiring shape (asserts a live-cell config aborts with exit code 2, zero tests run, across several live spellings including portless nats://localhost and Redis db 0), plus a direct attribute check on the real fixture object's scope/autouse marker — the assertion that actually fails if autouse is removed. Co-Authored-By: Rooty
Classifies every augur:* key and, on --confirm, deletes learned-policy, session-scoped, and synthetic keys so faculties revert to config defaults. Keeps real perception baselines and user-taught semantic memories; unknown keys are kept and flagged. Dry-run by default; refuses non-db-0 without --force. Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Co-Authored-By: Rooty
Registration is inert and must never crash the user's dialogue. A Redis failure at startup now logs and continues (the session degrades to non-learnable) instead of taking the console down before the greeting. Co-Authored-By: Rooty
The six perception-injecting drivers run against the live stack, so their injected sessions must be explicitly non-learnable, not merely unprovenanced. Each now records augur:session:meta with origin="synthetic" before it injects, and an AST guard fails if a perception driver ever omits the mint. Co-Authored-By: Rooty
Introduce the provenance primitives: LearnContext (session id, learnable, origin) and a single fail-closed resolve_learn_context that is_learnable_session delegates to, plus a top-level session_id on the nexus and foreseen payloads so an event's session is available downstream. Add the learned_write / non_learning_write decorators with an OFF/REPORT/ENFORCE mode, and a CL10 AST guard requiring every Redis-mutating function to carry a marker. All inert. Co-Authored-By: Rooty
Mark the 24 non-learning writers (bookkeeping, audit, and the filter-at-read group) with @non_learning_write and the 38 learned writers with @learned_write. Make the learned_write ctx an optional keyword — lenient under OFF/REPORT, mandatory under ENFORCE — so the existing storage tests are unchanged while production cannot forget provenance where it is enforced. CL10 backlog is empty. Co-Authored-By: Rooty
Resolve provenance at all 54 production call sites and hand it to the learned writers: the event's session for Vigil/Praesagium/Limen, the open prediction's origin for resolves, the reflection's session for tuning, the dialogue session for teaching, and LearnContext.system() for bootstrap and operator writes. A CL13 AST guard fails if any learned-write call omits ctx. No behaviour change. Co-Authored-By: Rooty
Under ENFORCE, exclude non-learnable sessions where records are read back into learning: the cross-session feedback pool and the Imperator reflection read-model. Initialize the mode from AUGUR_PROVENANCE_MODE (off|report|enforce, default off) at import, so a single env var activates enforcement across every faculty and an unknown value fails safe to off. Co-Authored-By: Rooty
Updates the requirements on [fakeredis](https://github.com/cunla/fakeredis-py) to permit the latest version. - [Release notes](https://github.com/cunla/fakeredis-py/releases) - [Commits](cunla/fakeredis-py@v2.36.2...v2.37.0) --- updated-dependencies: - dependency-name: fakeredis dependency-version: 2.37.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the requirements on fakeredis to permit the latest version.
Release notes
Sourced from fakeredis's releases.
Commits
04dc9cadocs: add changelog entry for option-value validation (#528)249792dfix: validate command option values that real Redis rejects (#528)af4abe1chore:update deps4e80bb0fix:topk model6b55588chore(deps): bump actions/setup-python from 6 to 7 (#529)96fef78feat:support min-idle-time in XREADGROUPc7ca0affix:mypya17cab2fix:redis6.2 failures1c22b0fmypy fixesb5e7718fix:tests failing on valkeyDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)